package com.platform.core.service;

import com.platform.comm.service.CommonBiz;
import com.platform.comm.web.results.PageListJsonResult;
import com.platform.dto.SysDataStandardDto;
import com.platform.core.entity.SysDataStandardEntity;
import org.springframework.data.domain.Pageable;

import java.util.Map;

/**
 * Description: NcloudSysDataStandard 业务层接口
 *
 * @author Coder
 */
public interface SysDataStandardBiz extends CommonBiz<SysDataStandardEntity,String> {

    /**
     * 分页查询ncloud_sys_data_standard
     *
     * @param map   查询参数
     * @param pageable    分页参数
     * @return ncloud_sys_data_standard列表
     */
    PageListJsonResult<SysDataStandardDto> search(Map<String, String> map, Pageable pageable);

    /**
     * 根据ID查询ncloud_sys_data_standard
     *
     * @param id ncloud_sys_data_standardID
     * @return ncloud_sys_data_standard
     */
    SysDataStandardDto detail(String id);

    /**
     * 新增ncloud_sys_data_standard
     *
     * @param req 新增信息
     */
    void add(SysDataStandardDto req);

    /**
     * 修改ncloud_sys_data_standard
     *
     * @param req 修改内容
     */
    void modify(SysDataStandardDto req);

    /**
     * 删除ncloud_sys_data_standard
     *
     * @param id ncloud_sys_data_standardID
     */
    void remove(String id);

    /**
     * 验证规范编码是否重复
     * @param id ID（修改时用）
     * @param code 编码
     * @param type 规范类型
     * @return Long
     */
    long validCode(String id, String code, String type);

    /**
     * 验证规范名称是否重复
     * @param id ID（修改时用）
     * @param name 名称
     * @param type 规范类型
     * @return Long
     */
    long validName(String id, String name, String type);
}
